/*
 * add by gangzhenga 闲暇时光
 * 学习bitmap之前，先理解位运算。
 *
 * 整数类型：byte，1字节，8位，最大存储数据量是255，存放的数据范围是-128~127之间。
 * 整数类型：short，2字节，16位，最大数据存储量是65536，数据范围是-32768~32767之间。
 * 整数类型：int，4字节，32位，最大数据存储容量是2的32次方减1，数据范围是负的2的31次方到正的2的31次方减1。
 * 整数类型：long，8字节，64位，最大数据存储容量是2的64次方减1，数据范围为负的2的63次方到正的2的63次方减1。
 * 浮点类型：float，4字节，32位，数据范围在3.4e-45~1.4e38，直接赋值时必须在数字后加上f或F。
 * 浮点类型：double，8字节，64位，数据范围在4.9e-324~1.8e308，赋值时可以加d或D也可以不加。
 * 字符型：char，2字节，16位，存储Unicode码，用单引号赋值。
 * 布尔型：boolean，只有true和false两个取值
 */
public class Demo1 {
    public static void main(String[] args) {

        /**topic 1：<< 左移**/
        // 由于默认是int 32位
        System.out.println(6 + "的二进制是:" + Integer.toBinaryString(6));
        // 左移2位之后 = 0000 0000 0000 0000 0000 0000 0001 1000
        System.out.println(6 << 2);//运行结果是24

        /**topic 1：<< 右移**/
        // 右移2位之后 = 0000 0000 0000 0000 0000 0000 0000 0001
        System.out.println(6 >> 2);// 运行结果是1

        /**topic 3 >>> 无符号右移**/
        System.out.println(-6 + "的二进制是:" + Integer.toBinaryString(-6));
        //System.out.println(Integer.parseInt(Integer.toBinaryString(-6),2));//结果是21
        System.out.println(6>>3);//结果是0
        System.out.println(-6>>3);//结果是-1
        System.out.println(-6>>>3);//结果是
        System.out.println(1<<29);//结果是
    }

}
